﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ProyectoGrupo5.Persistencia;
using ProyectoGrupo5.ClasesDominio;

namespace ProyectoGrupo5.Negocio
{
    public class OfertanteService
    {
        // Dependencias
        public IOfertanteDAO OfertanteDAO { get; set; }

        // Servicios básicos
        public Ofertante CrearOfertante(Ofertante ofertante)
        {
            if ((ofertante.CodigoOfertante == 0) ||
               String.Empty.Equals(ofertante.CodigoOfertante))
               throw new Exception("Código de ofertante no es válido");

            if (ofertante.Ruc == null ||
               String.Empty.Equals(ofertante.Ruc) ||
               ofertante.Ruc.Length != 11)
               throw new Exception("Número de Ruc no es válido");

            if (ofertante.Correo == null ||
               String.Empty.Equals(ofertante.Correo))
               throw new Exception("Cuenta de correo no es válido");

            return OfertanteDAO.CrearOfertante(ofertante);
        }

        public Ofertante ObtenerOfertante(Int32 codigo)
        {
            return OfertanteDAO.ObtenerOfertanteCodigo(codigo);
        }

        public Ofertante ModificarOfertante(Ofertante ofertante)
        {
            return OfertanteDAO.ModificarOfertante(ofertante);

        }
        public void EliminarOfertante(Int32 codigo)
        {
            OfertanteDAO.EliminarOfertante(codigo);
        }
        
        // Servicios avanzados
        public ICollection<Ofertante> ListarTodosLosOfertantes()
        {
            return OfertanteDAO.ListarOfertantesTodos();
        }       
    }
}